常用易忘 Linux 命令

查询硬件信息

查看 CPU 相关信息

1
2
3
4
cat /proc/cpuinfo | grep "physical id" | uniq | wc -l   # 查看物理 CPU 个数
cat /proc/cpuinfo | grep "cpu cores" | uniq # 查看核心数量
cat /proc/cpuinfo | grep "processor" | uniq | wc -l # 查看线程数量
cat /proc/cpuinfo | grep "model name" |uniq # 查看 CPU 型号

查看 GPU 相关信息

1
2
3
4
lspci | grep -i nvidia                                         # 查看显卡信息
lspci | grep -i vga # 查看显卡数量
cat /usr/local/cuda/version.txt # 查看 CUDA 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 # 查看 cuDNN 版本

查看硬盘空间

1
2
3
4
5
6
7
df -hl                        # 查看磁盘剩余空间
df -h # 查看每个根路径的分区大小
du -sh <dir_name> # 返回该目录的大小
du -sm <dir_name> # 返回该文件夹总 M 数
du -h <dir_name> # 查看指定文件夹下的所有文件大小(包含子文件夹)
ls -l | grep "^-" | wc -l # 查看文件夹中的文件数量
ls -l | grep "^d" | wc -l # 查看文件夹中的一级子文件夹数量

压缩和解压缩文件

压缩

1
2
3
4
5
6
7
tar -cvf jpg.tar *.jpg         # 将目录里所有 jpg 文件打包成 tar.jpg
tar -czf jpg.tar.gz *.jpg # 将目录里所有 jpg 文件打包并用 gzip 压缩,生成名为 jpg.tar.gz 的压缩包
tar -cjf jpg.tar.bz2 *.jpg # 将目录里所有 jpg 文件打包并用 bzip2 压缩,生成名为 jpg.tar.bz2 的压缩包
tar -cZf jpg.tar.Z *.jpg # 将目录里所有 jpg 文件打包并用 compress 压缩,生成名为 jpg.tar.Z 的压缩包
rar a jpg.rar *.jpg # rar 格式的压缩,需要先下载 rar for Linux
zip jpg.zip *.jpg # zip 格式的压缩,需要先下载 zip for linux
7za a -t7z -r jpg.7z image/* # a 表示添加文件/文件夹到压缩包,-t 指定压缩类型,默认为 7z,-r 表示递归所有的子文件夹,需要先安装 p7zip

解压

1
2
3
4
5
6
7
tar -xvf file.tar              # 解压 tar 包
tar -xzvf file.tar.gz # 解压 tar.gz
tar -xjvf file.tar.bz2 # 解压 tar.bz2
tar -xZvf file.tar.Z # 解压 tar.Z
unrar e file.rar # 解压 rar
unzip file.zip # 解压 zip
7za x file.7z -r -o./ # x 表示解压缩文件,并且是按原始目录树解压,-r 表示递归解压缩所有的子文件夹,-o 是指定解压到的目录,-o 后是没有空格的

打包

1
2
3
4
5
tar -cf all.tar *.jpg          # 这条命令是将所有 jpg 的文件打成一个名为 all.tar 的包。-c 是表示产生新的包,-f 指定包的文件名
tar -rf all.tar *.gif # 这条命令是将所有 gif 的文件增加到 all.tar 的包里面去。-r是表示增加文件的意思
tar -uf all.tar logo.gif # 这条命令是更新原来 tar 包 all.tar 中 logo.gif 文件,-u 是表示更新文件的意思
tar -tf all.tar # 这条命令是列出 all.tar 包中所有文件,-t 是列出文件的意思
tar -xf all.tar # 这条命令是解出 all.tar 包中所有文件,-x 是解开的意思

上传下载文件和文件夹

从远程服务器下载文件

1
scp username@servername:/path/remote_file /path/local_dir/

上传本地文件到远程服务器

1
scp /path/local_file username@servername:/path/remote_dir/

从服务器下载文件夹

1
scp -r username@servername:/path/remote_dir /path/local_dir/

上传本地文件夹到远程服务器

1
scp -r /path/local_dir username@servername:/path/remote_dir/

断点续传

1
2
alias scpr="rsync -P --rsh=ssh"   # 服务器端必须先安装 rsync
scpr /path/local_file username@servername:/path/remote_dir/

安装卸载运行终止程序

安装 deb 包

1
2
sudo dpkg -i   *.deb          # 安装 deb 软件包
sudo apt-get -f -y install # 若出现缺少依赖,使用这句命令自动安装依赖项

卸载 deb 包

1
2
3
dpkg -l | grep <filename>     # 模糊搜索某个已安装的 deb 包
sudo dpkg -r <filename> # 删除软件包(保留其配置信息)
sudo dpkg -P <filename> # 卸载软件包(不保留其配置信息)

运行 AppImage 文件

1
2
chmod a+x *.AppImage          # 添加可执行权限
./*.AppImage # 执行 AppImage 文件

终止程序

1
2
ps -ef | grep <key_name>      # grep 是查找搜索命令,后面跟需要匹配的关键词
kill -9 <pid> # 终止 pid 对应的程序
0%